package com.cskaoyan.mapper;

import com.cskaoyan.bean.Student;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 创建日期: 2022/05/19 15:59
 *
 * @author ciggar
 */
public interface StudentMapper {


    List<Student> selectStudentList();


    // 一个简单参数
    String selectNameById(@Param("id") Integer id);


    // 多个简单参数
    List<Student> selectNameByIdOrName(@Param("studentId") Integer id,
                                       @Param("studentName") String name);

    // 传入对象
    int insertStudent(Student student);


    int insertStudentWithParam(@Param("student") Student student);


    // 通过id修改名字和 年龄
    int updateStudentById(@Param("id") Integer id,
                          @Param("age") Integer age,
                          @Param("student") Student student);


    // 通过Map来传值
//    {key-value1,key2-value2}
    // 1. id       2. name
    List<Student> selectStudentByMap(@Param("studentMap") Map<String,Object> map);


    // 按照位置来传值
    int insertStudentPassParam(Integer id,String name,Integer age,String gender);


    // 根据表名和id来进行查询
    Student selectStudentByIdAndTableName(@Param("tableName") String tableName,
                                          @Param("id") Integer id);


    // 传递列名
    // 根据列名排序，取倒序的第一个
    Student selectStudentOneOrderByColumnName(@Param("columnName") String columnName);

}
